FTP Support
FTP is different from most services (like SSH or HTTP) because it does not use just one port.
- Port 21 (TCP) → control channel (login and commands).
- Additional ports → data channel (file transfers).
Without special handling, a firewall would block these extra data connections and FTP would not work.
PXF solves this automatically:
- The Linux module
nf_conntrack_ftp
is integrated and enabled by default. - This module understands the FTP protocol and ensures that data connections related to an FTP session are allowed automatically.
- That means you only need to allow port 21/tcp for a standard FTP server.
Using FTP with PXF
Open port 21 for FTP control:
pxf allow-port --proto tcp 21
pxf apply
PXF will then automatically allow the related FTP data connections. This works out of the box on RHEL 7/8/9 with both IPv4 and IPv6.
FTPS (FTP over TLS)
FTPS is FTP encrypted with TLS.
- When TLS is enabled, the firewall cannot read the FTP commands inside the encrypted channel.
- As a result, the automatic helper cannot detect the passive ports.
- You must define and open a passive range if FTPS is enabled.
Example for vsftpd.conf
or proftpd.conf
:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
Then in PXF:
pxf allow-portrange --proto tcp 40000-40100
pxf apply
Disabling FTPS
If you do not need FTPS (for example, if you only use plain FTP or prefer SFTP over SSH):
-
In vsftpd, set in
/etc/vsftpd/vsftpd.conf
:ssl_enable=NO
-
In cPanel (Pure-FTPd/ProFTPD):
-
Go to WHM → Service Configuration → FTP Server Configuration.
-
Find TLS Encryption Support and set it to Disabled.
-
Save changes and restart the FTP service:
/scripts/restartsrv_ftpserver
-
Plain FTP will then work fully automatically with PXF (only port 21 needs to be open).
FTP in cPanel
cPanel supports two FTP servers:
- Pure-FTPd (default)
- ProFTPD (alternative)
Both are compatible with PXF.
Configure port range in WHM
-
Log in to WHM as root.
-
Navigate to: Service Configuration → FTP Server Configuration.
-
Look for Passive Port Range.
- Set it to a fixed, small range (example:
40000–40100
).
- Set it to a fixed, small range (example:
-
In PXF, allow the same range:
pxf allow-portrange --proto tcp 40000-40100
pxf apply
Disable FTPS in WHM
- Go to Service Configuration → FTP Server Configuration.
- Find TLS Encryption Support.
- Select Disabled.
- Save and restart the FTP service.
In Summary
- Plain FTP (unencrypted): Just open port 21/tcp in PXF. Thanks to the built-in
nf_conntrack_ftp
module, both active and passive FTP work automatically. ✅ - Passive FTP: No issues with PXF — it works out of the box when FTP is not encrypted.
- FTPS (FTP over TLS): The helper cannot read encrypted commands, so you must define a fixed passive range (e.g.
40000–40100
) and open it in PXF. ⚠️ - Simpler and safer option: Disable FTPS or use SFTP (SSH, port 22), which requires no special firewall handling.
👉 In one line: With PXF, plain FTP “just works”; only FTPS requires opening a fixed passive range.